/**
 *  集中常规使用的form值校验规则 
 *  @time:   2021-01-12
 *  @modify: 2021-01-22
 *  @email:  cvper@sina.com
 *  @author: hexunjian
 *  @description: 
 *    1 => 可以使用通用的  commonValidate 类型进行正则校验，但是需要在配置中增加需要校验的正则表达式
 *    2 => 可以使用添加具体的类型进行正则校验，则不需要在配置中增加正则表达式，相应的正则已经集成在此页面
 *    3 => 遇到复杂的需要关联多个字段的校验的处理，可以通过 expand 对象保存相应的参数进行自定义校验处理
 */

const formValidate = {
  /**
   * 通用校验处理  => commonValidate
   * @params: value      => 必须      需要校验的值
   * @params: warningMsg => 必须      校验不通过返回的提示文案
   * @params: regExp     => 必须      利用正则进行验证处理
   * @params: expand     => 非必须    处理关联校验的参数对象
   */
  commonValidate: (value, warningMsg, regExp, expand)=>{
    try{
      let pattern = new RegExp(regExp)
      if(pattern.test(value)){
        return true
      }else{
        return warningMsg
      }
    }catch(e){
      console.log(e);
    }
  },

  /**
   * 常用校验正则处理集合
   * 1=> 手机号码
   * 2=> 邮箱地址
   * 3=> 网址
   * 4=> 身份证号
   */ 

  // 1=> 手机号码   (适用中国-大陆=>China，中国-澳门=>Macao，中国-香港=>HongKong，中国-香港=>Taiwan)
  phoneNumber: (value, warningMsg, regExp, expand)=>{ 
    // 外来需要正则的范围和正则表达式
    // let expand = {
    //   scope: [ 'China', 'Macao', 'HongKong', 'Taiwan' ],
    //   regExp:[ 'China', 'Macao', 'HongKong', 'Taiwan' ]
    // }
    
    // 默认正则的范围和正则表达式
    let defaultRegExp = {
      scope: [ 'China', 'Macao', 'HongKong', 'Taiwan' ],
      regExp:[ 'China', 'Macao', 'HongKong', 'Taiwan' ]
    }
    

    // TO-DO: 2021-01-22
    // Event: 此处需要全面的手机号校验处理
    // e1  => 中国大陆手机号编码规则
    // e2  => 中国澳门手机号编码规则
    // e3  => 中国香港手机号编码规则
    // e3  => 中国台湾手机号编码规则

    // 临时占位的参数
    let china = /1/
    let ao = /2/
    let hongkong = /3/
    let taiwang = /4/
    
    try{
      if(!china.test(value)){
        
      }else if(!ao.test(value)){

      }else if(!hongkong.test(value)){

      }else if(!taiwang.test(value)){

      }else{
        return true
      }
    }catch(e){
      console.log(e);
    }
    return true 
  },
  
  // 2=> 邮箱地址
  emailAddress: (value, warningMsg, regExp, expand)=>{ 
    // TO-DO: 2021-01-22
    return true
  },

  // 3=> 网址
  siteAddress: (value, warningMsg, regExp, expand)=>{ 
    // TO-DO: 2021-01-22
    return true
  },

  // 4=> 身份证号
  idCard: (value, warningMsg, regExp, expand)=>{ 
    // TO-DO: 2021-01-22
    return true
  },

  EventTodo: (value, warningMsg, regExp, expand)=>{
    console.log("测试下目前的校验的值-value-", value);
    console.log("判断下校验的值的类型-type-val-9527-", typeof(value))
    try{
      let pattern = new RegExp(regExp)
      console.log("测试以下用于校验的正则表达式是咋个样子--pattern--", pattern);
      if(pattern.test(value)){
        return true
      }else{
        return warningMsg
      }
    }catch(e){
      console.log(e);
    }
  }
}

export default formValidate
